package com.it.product.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.it.product.domain.Category;
import com.spzx.product.api.domain.vo.CategoryVo;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import org.springframework.web.multipart.MultipartFile;

import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.util.List;

public interface ICategoryService extends IService<Category> {

    /**
     * 查询商品分类
     * @param id 父类的id
     * @return
     * 首先是一级标签id 返回的多个2级的数据 后面会根句单个2级标签的id查询多个三级标签信息
     */
    List<Category> treeSelect(Long id);

    /**
     * 根据c的主键 递归查询 3 2 1级标签的主键
     * @param categoryId
     * @return
     */
    List<Long> selectListById(Long categoryId);

    /**
     * 数据导出
     * @param
     */
    void export(HttpServletResponse response) throws Exception;

    /**
     * 数据导入
     * @param file
     */
    void importData(MultipartFile file) throws Exception;

    /**
     * 远程调用category 查询所有的远程 一级分类
     * @return 返回的是集合
     */
    List<CategoryVo> getOneCategory();

    /**
     * 远程调用查询分类 （用户端）
     * @return 返回的是list集合
     */
    List<CategoryVo> tree();
}
